package com.probox.activity.api.domain;

import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.probox.common.core.annotation.Excel;
import com.probox.common.core.enums.CouponRuleEnum;
import com.probox.common.core.enums.IsUsedEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

@Data
public class ActivityGiftDetailVo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "领取明细ID(使用赠品必传)")
    private Long detailUid;
    /** 领取人ID */
    @Excel(name = "领取人ID")
    @ApiModelProperty(value = "领取人ID(领取人ID)")
    private Long customerUid;

    /** 领取人名称 */
    @Excel(name = "领取人名称")
    @ApiModelProperty(value = "领取人名称(领取人名称)")
    private String customerName;

    /** 领取人头像 */
    @Excel(name = "领取人头像")
    @ApiModelProperty(value = "领取人头像(领取人头像)")
    private String customerUrl;

    /** 赠品ID */
    @Excel(name = "赠品ID")
    @ApiModelProperty(value = "赠品ID(赠品ID)")
    private Long giftUid;

    /** 赠品名称 */
    @Excel(name = "赠品名称")
    @ApiModelProperty(value = "赠品名称(赠品名称)")
    private String giftName;

    /** 订单ID */
    @Excel(name = "订单ID")
    @ApiModelProperty(value = "订单ID(订单ID)")
    private Long orderUid;

    /** 数据状态 1有效-1删除 */
    @Excel(name = "数据状态 1有效-1删除")
    @ApiModelProperty(value = "数据状态 1有效-1删除 ")
    private String dataStatus;

    /** 是否使用 0 未使用  1已使用 */
    @Excel(name = "是否使用 0 未使用  1已使用")
    @ApiModelProperty(value = "是否使用 0 未使用  1已使用 ")
    private String isUsed;

    /** 使用时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "使用时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "使用时间(使用时间)")
    private Date usedTime;

    /** 领取时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "领取时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "领取时间(领取时间)")
    private Date createTime;

    /** 失效时间(自领取时间七天后失效) */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "失效时间(自领取时间七天后失效)" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "失效时间(自领取时间七天后失效) ")
    private Date failureTime;
    /**
     * 领取来源
     */
    @ApiModelProperty(value = "领取来源")
    private String detailSource;

    /**
     * 平台ID
     */
    private Long platformUid;
    /**
     * 商品ID
     */
    @ApiModelProperty(value = "商品ID")
    private Long proUid;
    /**
     * 商品名称
     */
    @Excel(name = "商品名称")
    @ApiModelProperty(value = "商品名称")
    private String proName;
    /**
     * 商品图片
     */
    @Excel(name = "商品图片")
    @ApiModelProperty(value = "商品图片")
    private String proImg;

    @ApiModelProperty(value = "收货地址ID")
    private Long addressUid;

    public String getDetailSourceStr(){
        return CouponRuleEnum.getNameByKey(detailSource);
    }

    public String getIsUsedStr(){
        if(failureTime != null && failureTime.after(DateUtil.date()))
            return IsUsedEnum.getNameByKey(isUsed);
        else
            return "已过期失效";
    }

}
